home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / prog / lb09c.zip / LIBERTY.TXT < prev    next >
Text File  |  1993-03-02  |  22KB  |  576 lines

  1. Liberty BASIC - limited version Release 0.9c
  2. Copyright 1992, 1993 Shoptalk Systems
  3.  
  4.  
  5. Liberty BASIC is a personal BASIC programming system for MS Windows 3.x
  6. requiring a 286 (4 Meg RAM recommended for 286/Standard Mode operation), 
  7. or a 386, 486 or better (586/Pentium?) and 3 Megabytes of RAM or more.
  8. When Microsoft introduced Windows 3.0, it didn't come with any programming
  9. facility, so we created Liberty BASIC to be for Windows what GWBASIC and
  10. QBASIC are for MS-DOS, an easy way for the end users to design their own
  11. software.  
  12.  
  13. PLEASE call or write if you have any suggestions for features
  14. you would like to see in Liberty BASIC!  We really need lots of
  15. feedback if Liberty BASIC is to become the product that _you_
  16. want it to be.
  17.  
  18. Distribution Policy:
  19.  
  20. Liberty BASIC 0.9c is Shareware, and it may be copied and freely distributed
  21. providing the following list of files is distributed together and unmodified.
  22. Shoptalk Systems forbids the redistribution of the these files for profit.
  23. A small fee may be levied for distribution costs, but not for the software
  24. itself.
  25.  
  26. Liberty BASIC Release 0.9c is a subset of the commercial product.  Our hope 
  27. is that you will like this limited release enough to register.  If you find 
  28. it useful we ask you to please register your copy.  $35 will get you the
  29. most recent version with technical support, and upgrades will be made 
  30. available for only a few dollars.  An illustrated, bound manual is available 
  31. for an additional $15 (only $10 if purchased when you register).  Inexpensive 
  32. site licenses are available (educators take note).  As an added incentive to 
  33. register, you will also receive an evaluation copy of BASIC Training, a 
  34. shareware BASIC tutor from Cascoly Software.
  35.  
  36. Version 0.9c takes a deliberate step towards making Liberty BASIC more
  37. familiar to GWBASIC programmers.  The PRINT, INPUT, WHILE...WEND, and
  38. boolean operations are more compatible with their GWBASIC counterparts.
  39. A GWBASIC to Liberty BASIC help file has been added.  More will follow.
  40.  
  41. In 0.9c, the user interface has been simplified.  The default drive and 
  42. directory are automatically selected when Liberty BASIC is loaded.  The 
  43. two file menus of previous versions have been integrated and redundant 
  44. items have been eliminated.  A Zoom Text item has been added to the source
  45. menu.
  46.  
  47. This is a list of files distributed with this release of Liberty BASIC: 
  48.  
  49.  liberty.exe
  50.  liberty.txt   -  This file
  51.  install.exe   -  The installation program
  52.  inst.bat
  53.  lbas10.txt    -  A description of Liberty BASIC 1.0a
  54.  summary.txt   -  Summary of commands & functions, hints, etc
  55.  register.txt  -  Order form
  56.  diffrncs.txt  -  A GWBASIC survival guide
  57.  v09c.txt
  58.  c.grp
  59.  d.grp
  60.  libertyb.grp  -  The Liberty BASIC Program Manager group file
  61.  install.err
  62.  lbasic.ini    -  Setup file
  63.  vwabort.dll
  64.  vwbas11.dll
  65.  vwdlgs.dll
  66.  vwfloat.dll
  67.  vwfont.dll
  68.  vwsignon.dll
  69.  vwvm.dll
  70.  ascii.bas
  71.  blank.bas
  72.  brnchtst.bas
  73.  buttons.bas
  74.  circles.bas
  75.  customer.bas
  76.  exponent.bas
  77.  factoril.bas
  78.  for_next.bas
  79.  getchar.bas
  80.  grapher.bas
  81.  graphics.bas
  82.  hilo.bas
  83.  invoice.bas
  84.  mandala.bas
  85.  open.bas
  86.  power.bas
  87.  profile.bas
  88.  read.bas
  89.  sieve.bas
  90.  strtest.bas
  91.  test.bas
  92.  turtle.bas
  93.  turtle2.bas
  94.  exp.bas
  95.  grapher.abc
  96.  trio.abc
  97.  
  98.  
  99.  +-------------------------------------------------------------------------+
  100.  | Known bugs:  Windows tries to match fonts more or less with size being  |
  101.  | more important than the name of the font.  When Liberty BASIC loads, it |
  102.  | tries to get a font of a certain size.  On some systems, this ends up   |
  103.  | being the Symbol font, which is unusable.  If your system does this,    |
  104.  | then pull down the System menu and select "Fonts...", then find a font  |
  105.  | that suits your taste best.                                             |
  106.  +-------------------------------------------------------------------------+
  107.  
  108.  
  109. Here is a list of enhancements for version 0.9c:
  110. ------------------------------------------------------------------------
  111.  
  112. BONUS!!! BONUS!!!
  113.    Registered users also receive a copy of BASIC Training, a shareware
  114.    BASIC tutorial from Cascoly Software!
  115.  
  116. 1) The browser/editor now automatically selects the current default
  117.    drive and directory when Liberty BASIC loads.
  118.  
  119. 2) The File and Files menus are now integrated into one File menu, and
  120.    duplicate items are eliminated.
  121.  
  122. 3) PRINT and INPUT are more GWBASIC compatible.  The compatibility can
  123.    be turned off by pulling down the Setup menu and selecting the
  124.    compatibility item.
  125.  
  126. 4) Variable names can now start with reserved words.
  127.  
  128. 5) Boolean AND & OR are more GWBASIC compatible, but bitwise operations
  129.    are still not supported.
  130.  
  131. 6) The INPUT$() function can now return a single keystroke.  Before it
  132.    was only good for file input.
  133.  
  134. 7) The NEXT command is more GWBASIC compatible.  You don't need to
  135.    specify the variable name.  For example:
  136.  
  137.      for x = 1 to 10
  138.        print x
  139.      next
  140.  
  141.    is now acceptable.
  142.  
  143. 8) The PgUp and PgDn keys now work when viewing Help files.  Previously
  144.    it was necessary to operate the scroll bars using the mouse.
  145.  
  146. 9) A GWBASIC to Liberty BASIC help file is provided.  The file is named
  147.    DIFFRNCS.TXT, and can be viewed by pulling down the Help menu and
  148.    selecting GWBASIC vs. Liberty BASIC.
  149.  
  150. 10) The WHILE...WEND commands are now GWBASIC compatible.
  151.  
  152. 11) The trim$() function now works.  It didn't before.
  153.  
  154. 12) A zoom text option has been added to the Source menu.
  155.  
  156.  
  157.  
  158. 0.9b Notes:
  159. ------------------------------------------------------------------------
  160.  
  161. 1) The following arithmetic functions have been added:
  162.     atn( ) -   arc-tangent
  163.     asn( ) -   arc-sine
  164.     acs( ) -   arc-cosine
  165.     exp( ) -   exponent
  166.     log( ) -   natural log
  167.     abs( ) -   absolute value
  168.  
  169.  
  170. 2) The FILEDIALOG command has been added:
  171.  
  172.     FILEDIALOG opens a dialog box that permits browsing of
  173.     drives, directories,and files.  When the desired file is found
  174.     and selected, FILEDIALOG then returns the full pathname
  175.     (drive:\directory\filename.ext) of the selected file.
  176.  
  177.     For example:
  178.  
  179.         FILEDIALOG "Select a file", "*.TXT", result$
  180.  
  181.     Causes a dialog box to be opened with the title "Select a file".
  182.     Only "*.TXT" files will be displayed, and when the user makes
  183.     the final selection, the resulting path will be placed into the
  184.     string variable result$.
  185.                                                    
  186.  
  187. 3) The lof( ) function has been added.  This lets you find the length of
  188. an open file.
  189.  
  190.     For example:
  191.  
  192.         open "c:\autoexec.bat" for input as #1
  193.         autoexecLength = lof(#1)
  194.  
  195.     Would set the value of variable autoexecLength to be whatever the
  196.     length of your autoexec.bat file is.
  197.  
  198.     
  199. 4) The using( ) function now works a lot better.
  200.  
  201.  
  202. 5) The NOTICE command has been added:
  203.  
  204.   NOTICE pops up a small dialog box containing a message of your choice.
  205.  
  206.   For example:
  207.  
  208.       notice "Illegal Entry"
  209.  
  210.     Would pop up a small notice saying "Illegal Entry".  This notice has
  211.     an OK button which lets the user close the notice.  Program execution
  212.     would then continue.
  213.  
  214.     In the above form, the title of the dialog box always reads "Notice".
  215.     You can change this using the following form:
  216.  
  217.       notice "User Error" + chr$(13) + "Limit Exceeded!"
  218.  
  219.     In this case, the title would be "User Error", and the notice
  220.     would be "Limit Exceeded!".
  221.  
  222.  
  223.  
  224. 0.9a notes:
  225. --------------------------------------------------------------------
  226.  
  227. A bug causing numeric constants between 0 and -1 to be accidentally
  228. translated as positive has been corrected ;
  229.  
  230. Compile error messages are more helpful now, and the compiler will
  231. highlight the errant line in the source editor ;
  232.  
  233. An on-line reference facility has been added as selections under
  234. the Help pull down menu of the file browser.  If instruction is needed
  235. for a particular command, simply select that command in the source
  236. (double clicking on the word does the trick), then pull down Help
  237. and select Command Reference ;
  238.  
  239. Graphics operations are more efficient (faster).  Additionally a circle
  240. command has been added for drawing circles (see circles.bas) ;
  241.  
  242. Faster compilation ;
  243.  
  244.  
  245.   NOTE:  In the file LIBERTY.TXT (this file) in the 0.9 release, the text
  246.   for the TRACE command inaccurately stated that the three levels of
  247.   TRACE worked thus:
  248.  
  249.     0 - run full speed,  1 - animated trace,  2 - single step
  250.  
  251.   In actuality, the reverse is true.
  252.  
  253.   0 single steps, 1 animates, and 2 runs full speed.
  254.   
  255.   Here is a list of the supported commands for the 0.9b release:
  256.  
  257.   ABS()   ACS()   ASC()   ASN()   ATN()   BEEP   BUTTON   CHR$()   CLOSE   
  258.   CLS   CONFIRM   COS()   DATE$()   DIM   EOF()   EXP()   FILEDIALOG 
  259.   FOR...NEXT   GOSUB...RETURN   GOTO IF...THEN...ELSE   INPUT$()   INPUT   
  260.   INPUT #   INSTR()   INT()   LEFT$()   LEN()   LET   LOF()   LOG()   
  261.   MID$()   OPEN   PRINT   PRINT #   PROMPT   LPRINT   REM   RETURN   
  262.   RIGHT$()   RND()   STOP   END   SIN()   STR$()   TAN()   TIME$()   
  263.   TRACE   TRIM$()   USING()   VAL()   WHILE...WEND
  264.  
  265.   Here is a list of the supported graphics commands:
  266.  
  267.   COLOR   GOTO   PLACE   UP   DOWN   GO   LINE   FILL   FLUSH   SIZE   CLS
  268.   FONT   NORTH   TURN   POSXY   PRINT   CIRCLE   HOME
  269.  
  270.   Here is a list of the spreadsheet commands:
  271.  
  272.   INDIRECT  MANUAL   CELL   FORMAT   RESULT?   FORMULA?   SELECT   USER
  273.   FLUSH
  274.  
  275.   Here is a list of the text window commands:
  276.  
  277.   CLS   FONT   LINES   LINE
  278.  
  279.   
  280.  
  281.  
  282.  
  283.  Release 0.9 Notes:
  284.  ------------------------------------------------------------------------
  285.  
  286.  Some bugs in the parser have been fixed ;
  287.  
  288.  Multiple windows are supported, buttons can be added where desired.
  289.  A button can cause execution to be transferred to a unique branch
  290.  label (event driven style) or it can return a string like an INPUT 
  291.  statement (procedural style).  Any window can be opened as:
  292.  
  293.    a graphics window with line and turtle color graphics ;
  294.    a text window (for output or input) with font control ;
  295.    a spreadsheet (controllable via BASIC statements) ;
  296.  
  297.  Confirmation and prompter style dialog boxes are supported ;
  298.  
  299.  The debugger has been improved with a variable watch window ;
  300.  
  301.  BASIC code can now be compiled and run from the start-up browser
  302.  without first opening a BASIC source editor window ;
  303.  
  304.  Many more statements and functions are included (see summary.txt) ;
  305.  
  306.  More sample programs are included ;
  307.  
  308.  
  309.  
  310.  Release 0.2 Notes:
  311.  --------------------------------------------------------------------------
  312.  
  313.  IF/THEN/ELSE now supported.  For example, the following is valid:
  314.    if mid$(a$,index,1) = "." then print "." else print mid$(a$,index,1);
  315.  
  316.  The compiler is not case sensitive any longer.  Reserved words may be                                                                   
  317.  in either upper or lower case.  It is case sensitive in the sense that
  318.  variable names that are the same but with different capitalization are
  319.  considered unique.  NOTE: VARIABLE NAMES MAY NOT START WITH STATEMENT 
  320.  OR FUNCTION NAMES.
  321.  
  322.  The simple continuous trace debugger in version 0.1 has been replaced
  323.  by a 3 stage pushbutton debugger permitting single step, continuous
  324.  trace, and no trace (run full speed).  You can move from one mode to
  325.  the other at will.  A variable watch window is not available yet.
  326.  
  327.  In version 0.1 you needed to recompile every time you wanted to run
  328.  a program.  Now all that is needed is to bring up the pane menu
  329.  for the window the program is running in and select the Restart option.
  330.  This can be done at any time (not just at the end of a program run) and
  331.  will work in Run or Debug mode.
  332.  
  333.  The ^ arithmetic operator is now supported.  The remaining operators
  334.  are: + - * / AND OR
  335.  
  336.    NOTE: AND & OR ARE ONLY USEFUL IN IF/THEN/ELSE STATEMENTS FOR
  337.    THE PURPOSE OF DETERMINING LOGICAL CONDITIONS.  FOR EXAMPLE:
  338.  
  339.         if a > b and matchFlag = 1 then gosub [match]      is acceptable
  340.         let result = -1 and latch                          is not acceptable
  341.  
  342.  Version 0.1 was only able to represent negative numbers with an
  343.  expression (0-n).  Version 0.2 now supports negative numbers in
  344.  expressions.  For example:
  345.      In version 0.1 -   print rate * (term + (0 - 5))
  346.      In version 0.2 -   print rate * (term + -5)
  347.  
  348.  STOP and END commands are now supported.
  349.  
  350.  RND(1) is now supported.  RND(0) is not.
  351.  The random sequence generator is crude, but it works for now.  Subsequent
  352.  releases of Liberty BASIC will have improved 'randomness'.  For now, let's
  353.  just say that RND(1) provides 'arbitrary' number generation.
  354.  
  355.  STR() was changed to STR$(), which is the proper MBASIC name for this
  356.  function.
  357.  
  358.  TRACE 0, 1, or 2 is now supported.  This allows control of the
  359.  debugger trace mode to be controlled inside of the program being
  360.  debugged.
  361.                 TRACE 0            no trace, run at full speed
  362.                 TRACE 1            trace continously
  363.                 TRACE 2            single step
  364.  
  365.    (^^ this is incorrect, see more recent mention, above ^^)
  366.  
  367.  
  368.  
  369. Release 0.1 notes:
  370. ---------------------------------------------------------------------------
  371.  
  372.  Highly MS-BASIC compatible (this does not mean Quick BASIC or Q-BASIC) ;
  373.  
  374.  Procedural programming model ;
  375.  
  376.  Line numbers are optional with descriptive alphanumeric labels permitted ;
  377.  
  378.  The following commands are supported:
  379.   LET, PRINT, INPUT, GOTO, GOSUB/RETURN, FOR/NEXT, IF/THEN,
  380.   OPEN/CLOSE, PRINT#, INPUT#, DIM, REM (or ')
  381.  
  382.  The following functions are supported:
  383.   LEN(), MID$(), EOF(), INT(), INPUT$(), VAL(), STR()
  384.  
  385.  Strings and integers of virtually unlimited size are supported (certainly
  386.  larger than  most need), and if you have a math coprocessor, Liberty BASIC
  387.  will automatically take advantage of it where advantageous.
  388.  
  389.  File operations for this release of Liberty BASIC are limited to sequential
  390.  access only.
  391.  
  392.  Both single and double dimension, string and numeric arrays are permitted.
  393.  
  394.  Variable name size is not limited, and all characters are significant.
  395.  
  396.  One limitation of this release is that IF/THEN statements can only be used
  397.  for branching.  For example, IF count < 10 THEN 500  is valid, but
  398.  IF count < 10 THEN PRINT "Count is less than 10"  is not permitted.  
  399.  Unfortunately, IF count < 10 THEN GOSUB 500  is not permitted either.  This
  400.  limitation will not exist in the registered version.
  401.  
  402.  Additionally, the compiler is very case sensitive (again, this will be
  403.  remedied in the registered release).  All basic commands, function names, 
  404.  and other reserved words need to be typed as uppercase, but variable names 
  405.  can be any length, and any combination of upper and lowercase letters.  
  406.  Digits and the period character are permitted, so long as they are not 
  407.  used as the first character.
  408.  
  409.  This release compiles at runtime.  The registered version will feature
  410.  incremental compilation.
  411.  
  412. UPGRADING FROM 0.1, 0.2, or 0.9:
  413.  
  414.  If this is a first time installation, skip to INSTALLATION: below.  If
  415.  this is an upgrade from a previous version of Liberty BASIC, read on.
  416.  
  417.  The batch file upgrade.bat is included for this procedure.  To procede
  418.  with the upgrade (assuming Liberty BASIC is already installed in
  419.  C:\LIBERTY), type:
  420.  
  421.    upgrade c  (hit return)
  422.  
  423.    The appropriate files will be moved over to c:\LIBERTY, and then
  424.    they will be deleted from their original drive:\directory.  If you
  425.    unzipped this upgrade into C:\LIBERTY, then nothing will be copied
  426.    or deleted.
  427.  
  428.    Once this done, the upgrade will be complete.
  429.  
  430.  
  431. INSTALLATION:
  432.  
  433.   To install Liberty BASIC, first make sure that you are not
  434.   running Windows.  The program INSTALL.EXE is included with
  435.   Liberty BASIC to install it for you.  
  436.   
  437.   Run this program, and you will be asked where Windows resides.  
  438.   The default is C:\WINDOWS.  If Windows resides anywhere else, 
  439.   you must specify it here.
  440.  
  441.   Now you will be asked where to install Liberty BASIC.  The
  442.   default is C:\LIBERTY.  If you want it to be installed elsewhere,
  443.   then you must specify it here.
  444.  
  445.   You will then be given an opportunity to abort the installation.
  446.   If you choose not to abort, then installation will begin then.
  447.  
  448.   Once installation is complete, you may load Windows.  If you
  449.   specified any directory to install Liberty BASIC into other than
  450.   \LIBERTY, then you will need to alter the properties for the
  451.   Liberty BASIC icon to indicate where it is installed.  Otherwise
  452.   you can just go ahead and double-click on its icon to start
  453.   Liberty BASIC.
  454.  
  455.   Liberty BASIC starts with a file browser window.  It is arranged as
  456.   four panes, three across the top, and one on the bottom like so:
  457.  
  458.   +--------------------------------------------------------------+
  459.   | -                  Liberty BASIC  c:\liberty             v ^ |
  460.   +--------------------------------------------------------------+
  461.   | a             [1]  | [..]          [2]  | demo.bas      [3]  |
  462.   | b                  | liberty            | read.bas           |
  463.   | c                  | msdos              | test.bas           |
  464.   |                    |                    |                    |
  465.   | select drive here  | select directory   | select file here   |
  466.   |                    | here               |                    |
  467.   +--------------------------------------------------------------+
  468.   |                                                         [4]  |
  469.   |                                                              |
  470.   |                                                              |
  471.   |                                                              |
  472.   |         see BASIC source code here                           |
  473.   |                                                              |
  474.   |                                                              |
  475.   |                                                              |
  476.   |                                                              |
  477.   +--------------------------------------------------------------+
  478.  
  479.  Select the drive to browse in pane [1], then select the directory
  480.  (usually liberty) to browse in pane [2], then finally the file to 
  481.  browse in pane [3].  When the .BAS file is selected, its source will 
  482.  be displayed in pane [4].  To run the program, position the cursor
  483.  inside of pane [3] and press the right hand mouse button and a menu
  484.  will appear.  Then select the item BASIC source editor, and a new
  485.  window will open which will contain a copy of the source for the
  486.  selected file.  Then position the cursor inside of that pane and again 
  487.  press the right hand mouse button for another menu.  There are two 
  488.  options available, Run and Debug.  Run compiles and runs the program, 
  489.  and Debug provides the additional benefit of a 3 level source level
  490.  debugger with optional watch window (v 0.9 let's you do this in
  491.  pane 4 without opening a seperate BASIC source editor).
  492.  
  493.  If you want help, you can get this on-line by pulling down the Help
  494.  menu and selecting either Liberty BASIC Notes, or Command Reference.
  495.  If you select a word in the source editor and then select help, the
  496.  system will try to find that word or command in the text.
  497.  
  498.  
  499.  HINT for 286 users with only 3 megabytes of RAM:
  500.  ---------------------------------------------------
  501.  3 megabytes RAM is very tight for Liberty BASIC when
  502.  running in Standard Mode.  If low memory errors make
  503.  Liberty BASIC unusable, try to free up as much extended
  504.  memory as possible.  If all else fails, try this:
  505.  
  506.    Run Windows ;
  507.    Run Liberty BASIC ;
  508.    Exit Liberty BASIC ;
  509.    Run Liberty BASIC again
  510.  
  511.  As strange a ritual as this may seem, it does something
  512.  to the way Liberty BASIC manages its memory, making
  513.  those low memory errors much less trouble.  We cannot
  514.  guarantee that this trick will work on your system.
  515.  
  516.  
  517.  Here's what you get with your registration fee of $35:
  518.  
  519.  Liberty BASIC 1.x (you will always get the most recent version) with:
  520.  
  521.  A free copy of BASIC Training from Cascoly Software.  This shareware
  522.    BASIC tutorial starts you on your way learning to program in BASIC ;
  523.  Technical Support ;
  524.  New!  A runtime distribution mechanism lets you share your Liberty
  525.    BASIC programs with others.  No runtime charges apply ;
  526.  Graphics commands for filled polygons, circles, ellipses, pie slices ;
  527.  Define your own Windows dialog boxes with the full suite of dialog
  528.    box objects (buttons, checkboxes, comboboxes, etc...) ;
  529.  Segmented graphics, which let you treat each drawn item as an object
  530.    which can be individually manipulated ;
  531.  The ability to add pull down menus with accelerator keys to your programs ;
  532.  The ability to trap the window close event and assign a routine to 
  533.    handle it ;
  534.  A more powerful spreadsheet widget ;
  535.  Random access file capability (0.9c is limited to sequential);
  536.  More string, math, and other functions and commands ;
  537.  More...
  538.  
  539.  See the file LBAS10.TXT for more details on version 1.0a!  To see
  540.  this file, pull down Help and select Version 1.0 Details.
  541.  
  542.  If you decide to register, send $35 and you will receive the most recent
  543.  version and tech support.   Upgrades will be made available for only a
  544.  few dollars.  You also get an evaluation copy of BASIC Training, a 
  545.  shareware BASIC tutor from Cascoly Software.  An illustrated, bound
  546.  manual is available for an additional $15 (only $10 if ordered when
  547.  you register).
  548.  
  549.  Here is some other stuff in the works:
  550.  
  551.    Incremental compilation ;
  552.    Program chaining ;
  553.    Graphics Bitblitting ;
  554.    Powerful animation capabilities ;
  555.    Debugger enhancements ;
  556.    Access to Dynamic-Link-Libraries ;
  557.    DDE capability ;
  558.    The ability to use externally defined resources ;
  559.    More ...!!!
  560.  
  561.  
  562.  PLEASE call or write if you have any suggestions for features
  563.  you would like to see in Liberty BASIC!  We really need lots of
  564.  feedback if Liberty BASIC is to become the product that _you_
  565.  want it to be.
  566.  
  567.  To find out more write or call:
  568.  
  569.    Shoptalk Systems
  570.    P.O. Box 1062
  571.    Framingham, MA  01701
  572.  
  573.    508-872-5315
  574.  
  575.    Or contact Carl Gundel on Compuserve at 71231, 1532
  576.